﻿<?php 
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../../API/php/header.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Mode de sortie text,json,xml,csv
//pour xml et csv $object_retour->data["resultat"] doit contenir qu'un est unique array
$modeSortie = "json";

//Liens de test
// API_RH/phpsql/mysql_getDataRapportRH1.php?milis=123456789&dateBegin=01012013&dateEnd=15012013&filtreUsers=

// IN obligatoire
$arrayInput = array(
    "dateBegin" => null,
    "dateEnd" => null
);

//Définition des entrants optionel
$arrayInputOpt = array(
    "filtreUsers" => ""
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput,$arrayInputOpt);

//Object retour minima
// $object_retour->strErreur string
// $object_retour->data  string
// $object_retour->statut  string

//------------------------------------------------------------------
if ($arrayValeur["filtreUsers"] != ""){
    $strFiltreUsersA = "AND a.user in (".$arrayValeur["filtreUsers"].")";
    $strFiltreUsersB = "AND b.user in (".$arrayValeur["filtreUsers"].")";
}else{
    $strFiltreUsersA = "";
    $strFiltreUsersB = "";
}

//pourcent de saisi d activitee
$strSql = "SELECT ROUND(
    IF(SUM(charge)IS NULL,0,SUM(charge))
    /
    (
    (SELECT COUNT(DISTINCT user) as nbuser
    FROM `".$prefixTable."tab_suivihebdo_enreg` b
    WHERE 1=1
    ".$strFiltreUsersA."
    AND b.`date_saisi` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y'))*10
    *
    (SELECT count(*) as nbjour
            FROM `".$prefixTable."affectation` c
            WHERE 1=1
            AND c.`open` != c.`close`
            AND c.`date` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y'))
    )
    *
    100
    ,2) as completion
    FROM `".$prefixTable."tab_suivihebdo_enreg` a
    WHERE 1=1
    ".$strFiltreUsersB."
    AND a.`date_saisi` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y')
;";
$req = $connection->prepare($strSql);

$rows = array();
if($req->execute()){
    $rows = $req->fetch();
    $object_retour->data["completion"] = $rows['completion'];
}else{
    die('Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")");
}
$req->closeCursor();

//------------------------------------------------------------------
//nombre de jour ouvré
$strSql0 = "SELECT count(*) nb_ouvre
    FROM affectation a
    WHERE 1=1
    AND a.`open` != a.`close`
    AND a.`date` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y')
;";
$req = $connection->prepare($strSql0);

$rows = array();
if($req->execute()){
    $rows = $req->fetch();
    $object_retour->data["nb_ouvre"] = $rows['nb_ouvre'];
}else{
    die('Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")");
}
$req->closeCursor();
//--------------------------------------------------------------------------
if($modeDebug){
    $strSorti .= ($strSql);
    $strSorti .= ($strSql0);
}

require("../../API/php/footer.php");
?>